1. Field of the Invention
The invention relates to the field of network computing. More specifically, the invention relates to using transaction agents to perform distributed transactions.
2. Description of the Related Art
Providing services to “network elements” (e.g. Switches; Routers; Application Servers; File Servers; End-user Workstations; participants in a TDM ring using SONET/SDH BLSR or UPSR etc.) in a networking environment may consist of many tedious and burdensome tasks.
Circuit Creation
Overview
For example, one method of providing connectivity between “switching network elements” (e.g., routers; switches; gateway servers; participants as nodes of a TDM ring using SONET/SDH and BLSR or UPSR; etc.) is to build a network circuit connection. Network circuit connections provide dedicated connectivity between switching network elements, thereby insuring reliable network throughput and availability along the connection. The process of building a circuit between two or more switching network elements is called network provisioning. Some of the steps associated with provisioning include route selection, physical provisioning, and equipment interconnection. However, today's heterogeneous networking environment makes establishing a circuit connection a tedious task, brimming with potential pitfalls, resulting in a high probability of network failures.
FIG. 1 illustrates how remote circuit provisioning is used to build a circuit by transmitting provisioning instructions to remote switching network elements. In this scenario, a technician connects remotely to a first switching network element 120 from a Graphical User Interface (GUI) 110 running at a remote location. While remotely connected to the first switching network element 120, one may execute a set of instructions to the switching network element 120, instructing the switching network element to provision a cross connect from the first switching network element 120 to a second switching network element 130.
Thereafter, the technician would similarly connect to the remaining switching network elements (switching network element 140, switching network element 150, and switching network element 160), in turn, performing similar operations until a complete circuit connection is built across the network. Depending on the number of network elements, this may become a long process. Since the circuit connection is fully set up in a given switching network element before moving onto the next, what are referred to as partial circuits are created until the last switching network element is processed to complete the circuit.
Additional Detail
A more detailed description of circuit provisioning follows. The traditional circuit provisioning process generally begins with selecting a network route or path to have provisioned. Route selection may include examining a network topology map in order to view the network bandwidth. Here, a manual check may be performed at each switching network element to determine if network bandwidth is available to make the circuit connection feasible. If bandwidth is available, then each switching network element along the path is provisioned. If bandwidth is not available, then an alternate path is selected or new switching network element(s) deployed within the network to provide additional bandwidth.
Primarily, a switching network element routes data within a network and/or from one network connection to another network connection. When provisioning a circuit a “cross connect” is executed within a switching network element to direct an input from the input facility of a first network connection to an output facility of a second network connection. A facility is a set of channels within a switching network element used in connecting the two network connections.
Typically, to provision a switching network element from a remote location, a remote connection is first established with the remote switching network element. A message to disable a first necessary facility is sent to the switching network element. This is followed by a check for a network failure and a check to determine if the connection to the switching network element has failed (e.g. server down, command failed, etc.).
Subsequent to the confirmed disabling of the first facility, a message to disable a second necessary facility is sent to the switching network element and again a check for a network failure is performed. Thereupon, a check for a disconnect failure to the switching network element is again performed.
After both facilities are disabled, a cross connect message is sent to the switching network element to generate the cross connect between both facilities. Then, a check for a network failure is performed, followed by a check for a cross connect failure (server down, command failed, etc.).
Following the programming of the cross connect, a message is sent to enable the first facility. Thereupon, a check for a network failure and an enable failure are performed. If successful, a message is sent to enable the second facility. A check for a network failure is again performed and then a final check is done to determine if an enable failure occurred.
Problems
A mistake to the provisioning of the circuit connection (e.g. wrong determination of network bandwidth) causes problems. Additionally, a mistake may cause the connection between the remote location and one or more of the network elements to be broken. If so, the remote location cannot be used to undo what was done. Rather, the effected switching network element will need to be corrected on location. At a minimum, these mistakes may require the technician to undo at least some of the installed cross connects.
Problems also materialize when an error occurs while un-provisioning a circuit connection. Un-provisioning, which provides for the termination of circuit connections, suffers deficiencies similar to provisioning mainly because un-provisioning also requires the manipulation of each network element to complete the task. For example, if a network technician fails to remove a circuit cross connection from a network element, then that part of the circuit will appear to be in service on a network topology map when, in fact, it is available and has no traffic going across it. Therefore, during subsequent attempts to provision a connection the circuit will appear to be in use, causing one to select a different path when in fact the connection is available. Due to this inaccuracy, inefficiencies develop, causing bottlenecks and delays along certain network paths and potentially no network traffic along others.
Worse yet, if network bandwidth is indeed available but hidden, network managers may prematurely schedule network elements to be upgraded or overlaid, causing an additional inefficient use of resources in time and cost.
Even if a network technician correctly provisions or un-provisions the circuit connection, other similar problems may present themselves if the technician delays or completely foregoes updating the topology map to show the provisioning or un-provisioning of the circuit.
Software Installation/Upgrade
Another example of the burdensome and overwhelming tasks of providing services in a distributed network environment includes installing/upgrading software on remote network elements. Typically, in a decentralized software environment each network element has its own individual copy of a software application resident upon its hard drive. When installing new software applications or software upgrades, software technicians must install in each individual network element the new applications or upgrades. Whether remotely or manually on location this scenario is problematic if the installation or upgrade of the software is an “all-or-nothing deal.” For example, in a file-sharing environment, the upgraded software may not be compatible with the older version software. Here, if only some of the network elements upgraded receive the software, file sharing between upgraded and non-upgraded network elements may be hindered until all network elements have been upgraded or the upgraded network elements are restored to the original version. This scenario is especially unacceptable if file-sharing is essential to the user's business.